import DataManager from "../manager/DataManager";
import { privacyChannel } from "../Script/privacyChannel";

const { ccclass, property } = cc._decorator;

@ccclass
export default class rewardBoxFrame1 extends cc.Component {
    @property({ type: [cc.Node], tooltip: '全部宝箱节点' })
    allBoxNode = [];
    @property({ type: cc.Node, tooltip: '底部钥匙节点' })
    keyParentNode = null;
    @property({ type: [cc.Node], tooltip: '单个钥匙节点' })
    keyNodeArr = [];
    @property({ type: cc.Node, tooltip: '底部看广告节点' })
    adContainerNode = null;
    @property({ type: cc.Node, tooltip: '领取按钮' })
    getRewardButton = null;
    @property({ type: cc.Node, tooltip: '全部领取' })
    getAllRewardButton = null;
    @property({ type: cc.Node, tooltip: '获得钥匙按钮' })
    getKeyBtn = null;
    @property({ type: cc.Node, tooltip: '关闭按钮' })
    closeBtn = null;
    @property({ type: cc.Node, tooltip: '关闭节点' })
    close = null;
    @property([cc.SpriteFrame])
    rewards: cc.SpriteFrame[] = [];

    /**拥有的钥匙数量 */
    hasKeyCnt = 3;
    selectBoxId = 0;
    /**全部钥匙数组 */
    allKeyIdx = [0, 1, 2, 3, 4, 5, 6, 7, 8];
    /**拥有钥匙数组 */
    hasKeyArr = [];
    openBoxCnt = 0;
    rewardStore = [] //存储的开启奖励
    protected onLoad(): void {
        this.hasKeyCnt = Math.floor(Math.random() * 3) + 1;
        for (let item of this.allBoxNode) {
            item.getChildByName("video").active = false
            item.on("click", () => {
                this.onClickBox(item)
            }, this)
        }
        this.getRewardButton.on("click", this.onClickGetReward, this)
        this.getAllRewardButton.on("click", this.onClickGetAllReward, this)
        this.updateKey()


    }
    onClickGetReward() {
        privacyChannel.getChannel().showVideo(() => {
            DataManager.instance.power += 5
            this.node.destroy()
        })
    }
    onClickGetAllReward() {
        privacyChannel.getChannel().showVideo(() => {
            DataManager.instance.power += 10
            this.node.destroy()
        })
    }
    onClickClose() {
        this.node.destroy()
    }

    onClickBox(item) {

        if (this.hasKeyCnt > 0) {
            this.hasKeyCnt--
            console.error("onClickBox")
            item.getChildByName("rewardBox1").active = false
            // let rewardIndex = Math.floor(Math.random() * 3)
            DataManager.instance.power += 1
            //item.getChildByName("reward").getComponent(cc.Sprite).spriteFrame = this.rewards[rewardIndex]
            item.off("click")
            this.updateKey()
        } else {
            privacyChannel.getChannel().showVideo(() => {
                item.getChildByName("rewardBox1").active = false
                //let rewardIndex = Math.floor(Math.random() * 3)
                DataManager.instance.power += 1
                //item.getChildByName("reward").getComponent(cc.Sprite).spriteFrame = this.rewards[rewardIndex]
                item.off("click")
                this.updateKey()
            })
        }
    }
    updateKey() {
        for (let item of this.keyParentNode.children) {
            item.active = false
        }
        for (let i = 0; i < this.hasKeyCnt; i++) {
            this.keyParentNode.children[i].active = true
        }
        if (this.hasKeyCnt <= 0) {
            for (let item of this.allBoxNode) {
                if (item.getChildByName("rewardBox1").active) {
                    item.getChildByName("video").active = true
                } else {
                    item.getChildByName("video").active = false
                }
            }
        }
    }

    // onLoad() {
    //     console.error("rewardBoxFrame");
    //     this.adContainerNode.active = false;
    //     this.keyParentNode.active = true;
    //     this.watchAdOn.active = true;
    //     this.close.active = false;
    //     this.allKeyIdx = this.allKeyIdx.sort(() => Math.random() - 0.5);
    //     for (let i = this.allKeyIdx.length - 1; i >= 0; i--) {
    //         if (this.hasKeyArr.length < 3) {
    //             this.hasKeyArr.push(this.allKeyIdx[i]);
    //             this.allKeyIdx.splice(i, 1);
    //         } else {
    //             break;
    //         }
    //     }
    //     for (let i = 0; i < this.allBoxNode.length; i++) {
    //         if (this.hasKeyArr.indexOf(i) >= 0) {
    //             this.allBoxNode[i].getChildByName('video').active = false;
    //         } else {
    //             this.allBoxNode[i].getChildByName('video').active = true;
    //         }
    //     }
    //     for (let i = 0; i < this.allBoxNode.length; i++) {
    //         this.allBoxNode[i].on(cc.Node.EventType.TOUCH_END, () => {
    //             if (this.hasKeyCnt > 0 && this.allBoxNode[i].getChildByName('rewardBox1').active && this.hasKeyArr.indexOf(i) >= 0) {
    //                 this.selectBoxId = i + 1;
    //                 this.keyNodeArr[3 - this.hasKeyCnt].getChildByName('yaoshi').active = false;
    //                 this.hasKeyCnt--;
    //                 this.updateBoxUi(i);
    //                 if (this.hasKeyCnt <= 0) {
    //                     this.showAdContainer();
    //                 }
    //                 console.log("钥匙打开宝箱");
    //             }
    //             else {
    //                 if (this.allBoxNode[i].getChildByName('rewardBox1').active) {
    //                     let me = this;
    //                     //@ts-ignore
    //                     losChannel.instance().getChannel().showVideo(function () {
    //                         me.updateBoxUi(i);
    //                         let idx = me.allKeyIdx.indexOf(i);
    //                         me.allKeyIdx.splice(idx, 1);
    //                         console.log("视频打开宝箱: ", this.allKeyIdx, i);
    //                     })
    //                 }
    //             }
    //         });
    //     }
    //     this.watchAdOff.on(cc.Node.EventType.TOUCH_END, () => {
    //         this.watchAdOn.active = !this.watchAdOn.active;
    //         if (this.watchAdOn.active) {
    //             this.closeBtn.getComponent(cc.Label).string = '暂时使用';
    //         } else {
    //             this.closeBtn.getComponent(cc.Label).string = '暂不使用';
    //         }
    //     });
    //     this.closeBtn.on(cc.Node.EventType.TOUCH_END, () => {
    //         if (this.watchAdOn.active) {//看广告获取钥匙
    //             let me = this;
    //             //@ts-ignore
    //             losChannel.instance().getChannel().showVideo(function () {
    //                 me.showGetKeyUI();
    //                 console.error("点击暂时使用获取钥匙");
    //             })
    //         } else {
    //             this.hide();
    //         }
    //     });
    //     this.getKeyBtn.on(cc.Node.EventType.TOUCH_END, () => {
    //         let me = this;
    //         //@ts-ignore
    //         losChannel.instance().getChannel().showVideo(function () {
    //             me.showGetKeyUI();
    //             console.error("点击按钮获取钥匙");
    //         })
    //     });
    //     this.close.on(cc.Node.EventType.TOUCH_END, () => {
    //         this.hide();
    //     });
    //     this.closeBtn.active = false;
    //     if (this.watchAdOn.active) {
    //         this.closeBtn.getComponent(cc.Label).string = '暂时使用';
    //     } else {
    //         this.closeBtn.getComponent(cc.Label).string = '暂不使用';
    //     }
    // }
    // /**更新宝箱ui */
    // updateBoxUi(idx) {
    //     this.allBoxNode[idx].getChildByName('rewardBox1').active = false;
    //     /**给玩家添加金币 */
    //     let coin = this.getReward();
    //     this.allBoxNode[idx].getChildByName('rewardNum').getComponent(cc.Label).string = coin;
    //     this.allBoxNode[idx].getChildByName('video').active = false;
    //     this.openBoxCnt++;
    //     if (this.openBoxCnt >= 3) {
    //         this.close.active = true;
    //     }
    // }
    // /**看广告加一把钥匙 */
    // showGetKeyUI() {
    //     if (this.openBoxCnt >= 9) {
    //         return;
    //     }
    //     if (this.hasKeyCnt >= 3) {
    //         return;
    //     }
    //     this.keyParentNode.active = true;
    //     this.adContainerNode.active = false;
    //     if (this.hasKeyCnt == 0) {
    //         this.keyNodeArr[2].getChildByName('yaoshi').active = true;
    //         this.hasKeyCnt = 1;
    //     } else if (this.hasKeyCnt == 1) {
    //         this.keyNodeArr[1].getChildByName('yaoshi').active = true;
    //         this.hasKeyCnt = 2;
    //     } else if (this.hasKeyCnt == 2) {
    //         this.keyNodeArr[0].getChildByName('yaoshi').active = true;
    //         this.hasKeyCnt = 3;
    //     }
    //     for (let i = this.allKeyIdx.length - 1; i >= 0; i--) {
    //         this.hasKeyArr.push(this.allKeyIdx[i]);
    //         this.allKeyIdx.splice(i, 1);
    //         break;
    //     }
    //     for (let i = 0; i < this.allBoxNode.length; i++) {
    //         if (this.hasKeyArr.indexOf(i) >= 0) {
    //             this.allBoxNode[i].getChildByName('video').active = false;
    //         } else {
    //             if (this.allBoxNode[i].getChildByName('rewardBox1').active) {
    //                 this.allBoxNode[i].getChildByName('video').active = true;
    //             }
    //         }
    //     }
    // }
    // hide() {
    //     this.node.destroy();


    // }
    // showAdContainer() {
    //     this.keyParentNode.active = false;
    //     this.adContainerNode.active = true;
    //     this.closeBtn.active = true;
    // }
    // getReward() {
    //     return 1;
    // }
}
